Methods, systems, and computer program product for implementing expert assessment of a product

ABSTRACT

Disclosed are method(s), system(s), and computer program product(s) for implementing expert assessment of a product. Some embodiments are directed at improved methods, systems, and computer program product form implementing expert assessment of product fixes/patches or upgrade. In some embodiments, the method or the system identifies or receives information regarding a client system on which the product runs and a reasoning rule for the expert assessment; analyzes the received or identified information based upon the reasoning rule; and determines the expert assessment based on the result of the act of analyzing the information. In some embodiments, the method or the system further comprises optimizing the expert assessment based on other information; determining whether the determination of the expert assessment is deterministic; and determining whether or not there exists a conflict in the expert assessment.

CROSS-REFERENCE TO RELATED APPLICATION(S)

The present application is a Continuation of U.S. application Ser. No.12/350,212, which is entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAMPRODUCT FOR IMPLEMENTING EXPERT ASSESSMENT OF A PRODUCT” and was filedon Jan. 7, 2009, the content of which is incorporated by reference inits entirety in this Application. Certain aspects in some embodiments ofthis Application are related to and disclosed in U.S. application Ser.No. 12/350,217 which is entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAMPRODUCT FOR AUTOMATICALLY CATEGORIZING DEFECTS” and was filed on Jan. 7,2009, the content of which is incorporated by reference in its entiretyin this Application.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material,which is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

BACKGROUND

Some embodiments of the invention relate to technologies forautomatically classifying defects and issues. Some embodiments of theinvention relate to method(s), system(s), and computer program productfor implementing expert assessment technologies on product defect orupgrades. Some embodiments relate to method(s), system(s), and computerprogram products) for automatic classification of defects and/or issuesof a piece of software, hardware, or a combination of software andhardware.

Various embodiments as disclosed below use computer program(s) and/orsoftware application(s) as examples for illustration purposes. Theseexamples are presented for the ease of explanation and illustration anddo not intend to limit the scope of various embodiments of theinvention.

During a typical development cycle of a product such as a piece ofcomputer software, developers and/or programmers often fix errors,mistakes, faults, failures, flaws, bugs, or undesirable features(collectively defects) as they are found during the development ormaintenance cycle and distribute the fixes for such defects in the formof new versions or releases of the software or patches. For the softwaredevelopment team, it may be desirable to know the patterns or trends ofthe defects. For example, the product development or maintenance teammay also be interested to know whether the defect of interest. Forexample, such patterns or trends of defects may be used so as toprioritize various tasks in the development or maintenance of thesoftware and properly allocate resources accordingly. Such patterns ortrends of defects may also be used for reporting purposes. Another useof such patterns or trends of defects is for continuous improvement ofthe software product and for quality assurance.

In order to better access information or data related to these defects,the details, metadata, bug report(s), and/or diagnostic data about thesedefects are often stored in some forms of data structures such as indatabase(s), table(s), spreadsheet(s), or list(s) (collectivelydatabase). The members of the software development or maintenance teamoften track, open, investigate, fix, and then close such defects byaccessing such a database. Nonetheless, such information or data relatedto these defects are often stored in an unstructured manner format inthis type of database. Here, such stored information or data may be“unstructured” even though they may characterized as structured as iscommonly understood where the structure of such stored information ordata is not sufficiently helpful for the desired debugging andbug-fixing tasks. What further clutter the storage of such informationor data is that such information or data are often stored with othertypes of administrative data. This would further reduce the usefulnessof such “databases” for these defects.

Often, such information or data may comprise dates, snippets of log andtrace files, comments of engineers or customers, error messagesgenerated by the software product, responses from customers, etc.Therefore, the developers or programmers have to go through a lot ofinformation or data in order to properly assess the impact of a defect.Nonetheless, the impact of a defect may encompass one and more oftenseveral functional areas. Therefore, the software development ormaintenance team needs to categorize each defect so as to prepare theinformation or data received for analysis to better understand thepatterns or trends of defects.

On the other hand, categorization or classification of defects oftenrequire a substantial amount of time and effort of one or more skilledprogrammers or engineers in order to better understand the impact of thedefect of interest and/or what functional area(s) is (are) affected. Asa result, engineers often manually categorize such defects. Such amanual process is not only prone to error but also wastes a lot ofresources.

To further exacerbate the problem with the aforementioned manualprocess, for large software project, there may exist many such defectswhich need to analyzed and/or fixed. This further hinders theaforementioned manual process for categorizing the defects.

In addition, even if the aforementioned manual process were to bepossible the result of the categorization may change over time as newdefects are found which may change the patterns or trends that arepreviously determined based on old defects. Therefore, the engineers maybe required to repeatedly perform successive passes over time in orderto correctly categorize the defects and to generate correct patterns ortrends of the defects of the software product. This requirement ofrepeated performance of successive passes thus renders the manualprocess of the defects even more unlikely.

In addition to the categorization and assessment of patterns or trendsof defects, the fixes of the defects may often be incorporated intofuture releases of the products. The fixes of the defects may also beincorporated into one or more patches to provide the fixes to thecurrent installed base which may be widespread among many customersusing different versions of the product on different platforms such assome hardware like computers and/or concurrently running software likeoperating systems.

Similarly, as time elapses and new releases of the software product arereleased, customers of the current installed base may desire or may beencouraged to adopt new versions of the software product for variousreasons. For example, the customers may decide to adopt the new releasesto take advantage of the new features and functionality of the newreleases. As another example, the customers may decide to adopt the newreleases because the support or warranty for their existing versions maybe expiring. Often, these customers may have already had patches appliedto their current versions of the software product. These customersusually engage in upgrade planning where the customers decide to changeto a newer version of the software product on possibly differentplatforms running possibly different operation systems from theircurrent ones.

Such an upgrade planning is of critical importance because it mayeliminate unnecessary downtime and loss of productivity. For the upgradeplanning, the customers may need to be able to determine what patch(es)they have already installed. The customers may need to determine whatdefects have not been fix on their current installed base for whichfixes are available in certain versions of the patch(es). The customersmay also need to determine what defects are not fixed yet so no patch isavailable. The customers may also wish to know what defects have alreadybeen fixed in the desired releases on their target platforms runningcertain operating systems.

The customers may also wish to know what defects have been fixed, butthere are currently no patches available for their current choice ofplatforms and operation systems. Note that patches for defects are oftenproduced on an as needed basis and may not be uniformly available forall versions and platform/operation system at the same time. Generally,the more defects to be fixed the longer the lead-time may be. Also, themore combinations of platforms and operation systems to apply thepatches to the longer the lead-time may be. This information may beimportant to the customers because there may be a lead-time associatedwith the requesting, building, and distributing patches to fix certaindefects for a particular platform running a particular operating system.This lead-time information may be crucial for the customers' upgradeplanning.

Currently, it is almost necessary for customers to submit theirinventory of patches and perhaps context information in a form of arequest such as a service request for a formal analysis or to somesupport personnel such as product support engineers or customer supportengineers for an informal analysis to determine the status of patches inthe target version(s) of the product(s) and the combination(s) ofplatform and operating system that the customers would like to adopt. Acustomer often considers one or more target versions of the product andone or more combinations of the platform and operating system as a partof the upgrade strategy. Nonetheless, the current formal analysis inresponse to a service request or informal analysis by the supportpersonnel is time consuming and expensive. These analyses are also proneto human error, and the results are typically highly dependent upon thelevel of skills of the support personnel for, for example, interpretingpossibly conflicting or ambiguous data regarding the availability offixes and patches.

Therefore, one of the several advantages of some embodiments is directedat methods, systems, and computer program product for automaticallyclassifying defects. Another advantage of the several advantages of someembodiments is directed at methods, systems, and computer programproduct for analyzing and reporting patch status. Another advantage ofthe several advantages of some embodiments is directed at methods,systems, and computer program product for implementing defect fixesupgrade expert assessment system.

SUMMARY

What is disclosed is a method, system, or a computer program product forimplementing expert assessment of a product. The method comprisesidentifying or receiving information regarding a client system;identifying or receiving a reasoning rule for the expert assessment;analyzing the information regarding the client system based at least inpart upon the reasoning rule; determining the expert assessment based atleast in part upon a result of the act of analyzing the informationregarding the client system; and displaying the expert assessment orstoring the expert assessment in a computer readable medium.

DESCRIPTION OF FIGURES

The drawings illustrate the design and utility of preferred embodimentsof the present invention. It should be noted that the figures are notdrawn to scale and that elements of similar structures or functions arerepresented by like reference numerals throughout the figures. In orderto better appreciate how the above-recited and other advantages andobjects of the present inventions are obtained, a more particulardescription of the present inventions briefly described above will berendered by reference to specific embodiments thereof, which areillustrated in the accompanying drawings. Understanding that thesedrawings depict only typical embodiments of the invention and are nottherefore to be considered limiting of its scope, the invention will bedescribed and explained with additional specificity and detail throughthe use of the accompanying drawings in which:

FIG. 1 illustrates a high level block diagram for the method or systemfor implementing expert assessment of product defect or upgrade.

FIG. 2 illustrates more details of the method or system for implementingexpert assessment of product defect or upgrade.

FIG. 3 illustrates more details of the method or system for implementingexpert assessment of product defect or upgrade.

FIG. 4 illustrates more details of the method or system for implementingexpert assessment of product defect or upgrade.

FIG. 5 illustrates more details of the preprocessing module of thesystem or the preprocessing process of the method for implementingexpert assessment of product defect or upgrade.

FIG. 6 illustrates more details of the further processing module of thesystem or the further processing process of the method for implementingexpert assessment of defect fixes upgrade.

FIG. 7 illustrates the information which may be utilized as an input forthe method or system for implementing expert assessment of productdefect or upgrade.

FIG. 8 depicts a computerized system on which a method for implementingexpert assessment of a product may be implemented.

DETAILED DESCRIPTION

Various embodiments described in the Specification use examplesinvolving a computer software product merely for the ease of explanationor for illustration purposes and do not intend to limit the scope ofvarious embodiments to computer software product only. One of ordinaryskills in the art would clearly understand that the written descriptionof various embodiments herein may also be applied to other types ofproducts while achieving identical or substantially similar purposes.

Various embodiments are directed at an improved method, system, andcomputer program product for implementing expert assessment of aproduct. Some embodiments are directed at improved methods, systems, andcomputer program product form implementing expert assessment of productfixes/patches or upgrade. In some embodiments, the method or the systemidentifies or receives information such as a service request or a bugreport regarding a client system on which the product runs and areasoning rule for the expert assessment. In some embodiments, themethod or the system then analyzes the received or identifiedinformation based upon the reasoning rule.

In some embodiments, the method or the system then determines the expertassessment regarding the fixes or patches in response to the informationreceived or identified form the client based on the result of the act ofanalyzing the information. In some embodiments, the method or the systemfurther comprises optimizing the expert assessment based on otherinformation. In some embodiments, the method or the system furthercomprises determining whether the determination of the expert assessmentis deterministic. In some embodiments, the method or the system furthercomprises determining whether or not there exists a conflict in theexpert assessment.

Referring to FIG. 1 which illustrates a high level block diagram for themethod or system for implementing expert assessment of product defect orupgrade. At 102, the method or system for implementing expert assessmentof product defect or upgrade identifies or receives information or dataregarding a client system on which the product is running in someembodiments. In some embodiments, the information or data compriseinventory list of the client's platform. In some embodiments, theinventory comprises the client's platform on which the product isrunning. For example, the inventory may comprise Sin Microsystems® SPARCEnterprise M8000 server or an IBM® System z9™ Business Class mainframe.

In some embodiments, the inventory comprises information or data aboutthe components at various granularity levels for the client's platform.In some embodiments where the method or the system employs an expertsystem or a knowledge system rather than some problem solving logic, themethod or the system may require some knowledge about the variouscomponents of the platform in order for the reasoning or inference toproceed. In some embodiments, the inventory comprises the version(s) orrelease(s) of the operating system together with which the product runson the client's platform. In some embodiments, the inventory comprisesversion of the product or versions (collectively current version) ofvarious parts of the product (collectively current product) which iscurrently running on the client's platform.

In some embodiments, the information or data comprise information aboutthe future product (collectively target information) that the client maybe acquiring or obtaining. In some embodiments, the target informationcomprises one or more target versions of the product or versions(collectively target version) of various parts of the future product(collective target product) that the client desires to acquire. That is,the client may wish to choose certain versions of certain components andother versions of other components for the target product. In someembodiments, the target information comprises the target version(s) ofthe operation system(s) together with which the product runs on thetarget platform. In some embodiments, the target information comprisescontext information which may further aid the method or system forimplementing expert assessment of product defect or upgrade. Forexample, the context information comprises information about othercomponents installed on the client's platform which are not part of theproduct but may cause incompatibility, conflicts, or other issues withthe target version or the target product. In some embodiments, theinformation or data comprise specific instructions which may come fromeither the client or the product supplier.

At 104, the method or system for implementing expert assessment ofdefect fixes or upgrade identifies one or more databases, tables, lists,or other data structures (collectively database) for persisting data insome embodiments. In some embodiments, the method or system forimplementing expert assessment of product defect or upgrade utilizes thedatabase to persist resultant data obtained from the method or system.In some embodiments, the method or system for implementing expertassessment of product defect or upgrade utilizes the database to persistthe information received from the client. In some embodiments, themethod or system for implementing expert assessment of defect fixes orupgrade tracks defects identified for various versions of the product inthe database.

At 106, the method or system for implementing expert assessment ofproduct defect or upgrade receives one or more rules regarding theexpert assessment of product defect or upgrade in some embodiments. Insome embodiments, the one or more rules are persisted in a database. Insome embodiments, at least one of the one or more rules is devised byexpert(s) having detailed knowledge of one or more databases comprisingmetadata for defects found for various versions of the product. In someembodiments, a rule comprises a status code, a flag indicator, or acombination of both.

In some embodiments, the database comprising the one or more rulescomprises a rule base or a knowledge base. In some embodiments, thedatabase may also comprise related expertise or expert knowledge forexpert assessment of product defect or upgrade. In these embodiments,the database may be the first one to be worked on and will be expandedwhen the method or the system does not produce desirable or desiredresults. In some of these embodiments, the database may be expandedwithout modifying or re-codifying the one or more programs that workalong side the database to generate expert assessment of product defector upgrade.

In some embodiments, the related expertise or expert knowledge forexpert assessment of defect and upgrade may be codified, rather than ina database, in one or more programs or decision logic for a problemsolving process or system. In some of these embodiments, the one or moreprograms or decision logic may be modified when the method or the systemdoes not generate or produce desirable or desired results. In someembodiments, the expertise or expert knowledge for expert assessment ofproduct defect or upgrade are codified in both the database and one ormore programs of the problem solving process or system.

In some of these embodiments, the database, the one or more programs ordecision logic, or both may be modified when the method or the systemdoes not generate or produce desirable or desired results in the expertassessment of product defect or upgrade. In some embodiments, the one ormore rules constitute one or more inference rules which may be used tomimic a decision logic process or system, a decision of an expert, or anexpert reasoning process in implementing expert assessment of productdefect or upgrade.

At 108, the method or system for implementing expert assessment ofproduct defect or upgrade analyzes the information or data identified orreceived at 102 based on the one or more rules in some embodiments. Insome embodiments, at least one of the one or more rules assimilates to atree data structure with one or more goals or conclusions and also witha plurality of branches where the plurality of branches representspossible reasoning paths leading to the one or more goals. In someembodiments, each of the one or more rules assimilates a tree datastructure with one or more goals or conclusions, and the plurality oftrees assimilate a “forest” of tree data structures for the method orsystem for implementing expert assessment of product defect or upgrade.

In some embodiments, a leaf of a tree structure represents an evidencenode which obtains information by asking questions. In theseembodiments, the answers may comprise definitive answers such as “yes”,“no”, numerical values, or text strings. The answer may also comprisenon-definitive answers such as “maybe”. In some embodiments, a leaf of atree structure may represent an external node obtain data from aprocedure call. In some embodiments, a leaf may also represent areference function which refers to another tree or part of a tree. Insome embodiments, the method or system for implementing expertassessment of product defect or upgrade also comprises a referencingmechanism for one rule to reference another rule. In some embodiments,the referencing mechanism is built into the rule base or the databasecontaining the one or more rules.

At 110, the method or system for implementing expert assessment ofproduct defect or upgrade performs expert assessment of the productdefect or upgrade. In some embodiments, the method or system forimplementing expert assessment of product defect or upgrade performs theexpert assessment of product defect or upgrade based at least in partupon the analysis result at 108.

In some embodiments, the expert assessment comprises a report that isparticularly tailored for the client in response to the informationreceived at 102. In some embodiments, the expert assessment comprises alist of patches available for the client based on the current version ofthe product and the current version of the client's platform andoperation system. In some embodiments, the expert assessment comprises alist of patches available for the client based on the target version ofproduct, the client's platform, and operation system.

In some embodiments, the expert assessment comprises a suggestion or arecommendation for client's upgrade strategy or upgrade planning. Forexample, the expert assessment may comprise recommended product versionbased at least in part upon the target version(s) of the client'splatform(s) on which the target version of the product runs and/or theversion(s) of the operating system together with which the targetversion of the product runs. More details of the expert assessment willbe described in subsequent paragraphs.

At 112, the method or system for implementing expert assessment ofproduct defect or upgrade further makes further uses of the expertassessment in some embodiments. In some embodiments, the method orsystem for implementing expert assessment of product defect or upgrademay display the expert assessment or store the expert assessment in acomputer readable medium. In some embodiments, the method or system forimplementing expert assessment of product defect or upgrade may causethe expert assessment to be transmitted to the client. In someembodiments, the method or system for implementing expert assessment ofproduct defect or upgrade may persist the expert assessment in adatabase for further manipulation, processing, analysis, or storage.

At 114, the method or system for implementing expert assessment ofproduct defect or upgrade may further perform optimization on the act ofdetermining the expert assessment of 110 in some embodiments. Forexample, in some embodiments where the method or system for implementingexpert assessment of product defect or upgrade determines the expertassessment in response to an information or data comprising an upgradeplanning or an upgrade strategy, the method or the system may, basedupon client's specific instructions, goals, or requirements, take intoaccount such specific instructions, goals, or requirements to devise theexpert assessment accordingly. In some embodiments, the method or systemfor implementing expert assessment of product defect or upgrade may sodevise the expert assessment and present the result of incomplete or notfully determined reasoning by using a knowledge base.

In some embodiments, the method or system for implementing expertassessment of product defect or upgrade receives or identifiesadditional information at 116 for performing optimization at 114. Insome embodiments, the additional information may comprise client'sspecific instructions, goals, or requirements. For example, the clientmay provide specific instructions that the client may prefer onespecific platform running a specific operating system. Based upon thesetwo instructions, the method or system for implementing expertassessment of product defect or upgrade may determine a target versionof the product which requires a high cost on the part of the client. Onethe other hand, the client may also communicate the specificinstructions that the client would also like to control the overall costof upgrade to a fixed amount. In this example with somewhat conflictinginstructions, the method or system for implementing expert assessment ofproduct defect or upgrade may not reach a complete or fully determinedreasoning or decision, but the method or the system still takes allthese specific instructions, performs the optimization, and present theresults.

Referring to FIG. 2 which illustrates more details of the method orsystem for implementing expert assessment of product defect or upgrade.At 202, the method or system for implementing expert assessment ofproduct defect or upgrade identifies or receives information or dataregarding a client system on which the product is running in someembodiments. At 204, the method or system for implementing expertassessment of product defect or upgrade identifies one or moredatabases, tables, lists, or other data structures (collectivelydatabase) for persisting data in some embodiments. At 230, the method orsystem for implementing expert assessment of product defect or upgradereceives or identifies additional information from a defect statusdatabase. More details for the defect status database will be describedin the following paragraphs.

At 206, the method or system for implementing expert assessment ofproduct defect or upgrade receives one or more rules regarding theexpert assessment of product defect or upgrade in some embodiments. At208, the method or system for implementing expert assessment of productdefect or upgrade analyzes the information or data identified orreceived at 202 based on the one or more rules in some embodiments. At210, the method or system for implementing expert assessment of productdefect or upgrade performs expert assessment of the product defect orupgrade.

At 212, the method or system for implementing expert assessment ofproduct defect or upgrade determines whether the result of the act ofdetermining the expert assessment at 210 is deterministic in someembodiments. For example, the method or system for implementing expertassessment of product defect or upgrade may determine at 212 thatwhether or not it reaches a fully determined and/or completedetermination based on the information or data provided. A typicalnon-deterministic determination comprises one where there exists someconflict in the input information or data in some embodiments. Anothertypical non-deterministic determination comprises one where there isinsufficient input information or data for the method or system to reacha deterministic determination in some embodiments.

In some embodiments where the method or system for implementing expertassessment of product defect or upgrade finds that the determination ofthe expert assessment is deterministic, the method or the system mayproceed to 236 to determine the confidences of the result(s) of thedetermination of the expert assessment. In some embodiments, the methodor system for implementing expert assessment of product defect orupgrade may use any statistical processes to determine the confidence ofthe result based upon the existing expert assessments previouslydetermined and/or analyses of historical data of such determinationprocesses previously performed. In some embodiments, the determinationof confidence of the result of the determination of expert assessment isoptional.

At 214, the method or system for implementing expert assessment ofproduct defect or upgrade may proceed to further utilize or manipulatethe expert assessment. More details about the utilization ormanipulation of the expert assessment will be described in subsequentsections. In some embodiments whether the method or system forimplementing expert assessment of product defect or upgrade finds thatthe determination of the expert assessment at 210 is non-deterministic,the method or the system may proceed to 236 to determine the confidenceof the non-deterministic expert assessment by using various mathematicalor statistical processes as similarly discussed above. In theseembodiments, the method or system for implementing expert assessment ofproduct defect or upgrade may then proceed to further utilize ormanipulate the non-deterministic expert assessment at 214 as similarlydiscussed above.

In some embodiments where the method or system for implementing expertassessment of product defect or upgrade finds that the result of thedetermination of the expert assessment at 210 is non-deterministic, themethod or the system may proceed to 218 to invoke one or more processesor modules. In some of these embodiments, the method or system forimplementing expert assessment of product defect or upgrade may reportone or more exceptions in response to the non-deterministicdetermination at 220. In some embodiments, the method or system forimplementing expert assessment of product defect or upgrade may causethe one or more exception reports to be transmitted to human experts andcalls for human expert intervention.

In some embodiments, the method or system for implementing expertassessment of product defect or upgrade may, at 222, invoke anappropriate process or an appropriate module to identify problematicinput information or input data that may have contributed to thenon-deterministic determination at 210. In some of these embodiments,the method or system for implementing expert assessment of productdefect or upgrade then loops back to 208 and repeats the processes orre-invokes the modules from 208. In some embodiments, the method orsystem for implementing expert assessment of product defect or upgrademay, at 224, request one or more actions to be performed to see if adeterministic determination may be reached. In some of theseembodiments, the method or system for implementing expert assessment ofproduct defect or upgrade may, for example, request to expand the defectstatus database or to refine the input information or input data orother information or data at 224.

In some embodiments, the method or system for implementing expertassessment of product defect or upgrade may request re-codification ofthe problem solving logic, if one is adopted, or one or more programsrelated to the determination process or module at 224. In someembodiments, the method or system for implementing expert assessment ofproduct defect or upgrade may persist the one or more exceptions forfurther statistical analyses or historical analyses to improve theaccuracy of the determination process or the determination module at210. In some embodiments, the method or system for implementing expertassessment of product defect or upgrade may further invoke thestatistical analyses or the historical data analyses to improve theaccuracy of the determination process or the determination module at210.

In some embodiments, the method or system for implementing expertassessment of product defect or upgrade may further input additionalinformation or data, loops back to 208, and repeats the analysis processor module at 208, the determination process or module at 210, and thedetermination process or module at 212 to see if the additionalinformation would yield a deterministic determination at 212. In someembodiments, the additional information or data comprise informationthat is missing or not provided by the client at issue but was providedby another client with some similarity to the client to the client atissue.

For example, the client at issue may not have provided the currentversion of the platform, but another client which exhibits certainsimilarities, such as similar product, similar use of the product, orsimilar history in upgrades or applying fixes, with the client at issuemay have provided its current version of the platform at or near thetime when the client at issue provided information. In theseembodiments, the method or system for implementing expert assessment ofproduct defect or upgrade may then identify and use such additionalinformation or data for analyses at 224 and 208 and determine the expertassessment at 210 with this additional information or data. In theseembodiments, the method or system for implementing expert assessment ofproduct defect or upgrade may similarly determine the confidence at 236and may also similarly use both the non-deterministic expert assessmentas well as the expert assessment determined with the additionalinformation or data.

After the method or system for implementing expert assessment of productdefect or upgrade finishes the process 214, the method or the systemproceeds to 216 to continue with further actions in some embodiments. Insome embodiments, the method or system for implementing expertassessment of product defect or upgrade may also filter the display orreport of the expert assessment at 228 based upon different criteriawhich comprise client's requirements for a report of expert assessmentor any other recipient's requirement for such expert assessment. Afterthe method or system for implementing expert assessment of productdefect or upgrade completes the one or more processes or modules at 218,the method or the module may proceed to 216 to continue with furtheractions in some embodiments. In some embodiments, the method or systemfor implementing expert assessment of product defect or upgrade may alsoproceed to 234 for further processing after the method or the systemfinishes the one or more processes or modules at 218.

Referring to FIG. 3 which illustrates more details of the method orsystem for implementing expert assessment of product defect or upgrade.At 202, the method or system for implementing expert assessment ofproduct defect or upgrade identifies or receives information or dataregarding a client system on which the product is running in someembodiments. At 204, the method or system for implementing expertassessment of product defect or upgrade identifies one or moredatabases, tables, lists, or other data structures (collectivelydatabase) for persisting data in some embodiments.

In some embodiments, the method or system for implementing expertassessment of product defect or upgrade may also perform, at 316, somepre-processes which comprise one or more of the following processes ormodules. In some embodiments, the method or system for implementingexpert assessment of product defect or upgrade receives or identifiesinformation or data regarding the fixes or patches for various defectson various platform running different operating system at 308. In someembodiments, the information or data so received or identified arestored in a database.

In some embodiments, the database comprises the defect status databaseas identified at 230. In some embodiments, the information or dataregarding the fixes or patches for various defects comprise metadata,engineer comment(s), bug/defect report(s), snippets of one or more logrecords, trace file(s) or record(s), error message(s), response(s) fromclient(s), or even client's description(s) for various defect(s) for thefixes or patches. In some embodiments, the information or data regardingthe fixes or patches for various defects comprise metadata, engineercomment(s), detailed information, log file(s) or record(s) for a fix orpatch. In some embodiments, the method or system for implementing expertassessment of product defect or upgrade identifies a list of defectsfrom a database, a table, a list, or any other data structure at 310.

In some embodiments, the database, table, list, or any other datastructure comprises the defect status database. In some embodiments, themethod or system for implementing expert assessment of product defect orupgrade then determines the status of fixes or patches for the list ofdefects previously identified at 310. In some embodiments, the method orsystem for implementing expert assessment of product defect or upgradeidentifies or determines the status of fixes or patches form a list, atable, a database, or any other data structure at 312. In someembodiments, the list, table, database, or any other data structurecomprises the defect status database. In some embodiments as illustratedby FIG. 3, the method or system for implementing expert assessment ofproduct defect or upgrade then persists, if it has not been done, atleast some of the information or data identified, received, ordetermined at 308, 310, and 312 into one or more computer readablemedium for future reference and analyses. In some embodiments, theprocess or module of 316 communicates with 202, 204, and/or 206.

At 206, the method or system for implementing expert assessment ofproduct defect or upgrade receives one or more rules regarding theexpert assessment of product defect or upgrade in some embodiments. At208, the method or system for implementing expert assessment of productdefect or upgrade analyzes the information or data identified orreceived at 202 based on the one or more rules in some embodiments. At210, the method or system for implementing expert assessment of productdefect or upgrade performs expert assessment of the product defect orupgrade. In some embodiments where the expert assessment comprises fixesor patches or an upgrade planning or strategy, the method or system forimplementing expert assessment of product defect or upgrade determineswhether or not the one or more fixes/patches are to be merged at 302.

In some embodiments where the method or system for implementing expertassessment of product defect or upgrade determines that some of thefixes/patches may be merged, the method or the system merges the one ormore fixes/patches. For example, the method or system for implementingexpert assessment of product defect or upgrade may find a fix or a patchactually fixes two defects at the same time, but the method or systemreceives or identifies only one of the two defects from the informationor data from the client in response to which the method or systemidentifies another fix or patch for the identified defect. In this case,the method or system for implementing expert assessment of productdefect or upgrade may incorporate the fix or patch in the expertassessment. As another example, the method or system for implementingexpert assessment of product defect or upgrade may have identified orreceived a defect from the client and determines a fix or patch inresponse, but the method or system may further determine that it may bebeneficial to the client to include another fix not necessarily to fixany defects but to enhance various aspects of the product. In this case,the method or system for implementing expert assessment of productdefect or upgrade may then “merge” the two fixes or patches into theexpert assessment.

After the method or system for implementing expert assessment of productdefect or upgrade finishes the process or module at 210, the method orthe system may then proceed to 304 to determine whether or not torediscover additional information or data for implementing expertassessment of product defect or upgrade in some embodiments. In someembodiments, the method or the system determines whether or not torediscover additional information or data at 304 based at least in partupon the expert assessment of 210.

For example, the method or the system may base the determination at 304on the integrity, completeness, or accuracy of the expert assessment of210. In some embodiments where the method or system for implementingexpert assessment of product defect or upgrade determines that it isnecessary or desirable to rediscover additional information, the methodor system then receives or identifies such additional informationsimilar to the process or module at 224 and loops back to 208 to performanalyses with the additional information or data based at least on therules received or identified at 206. In some embodiments where themethod or system for implementing expert assessment of product defect orupgrade determines that it is not necessary or not desirable torediscover additional information or data, the method or the systemproceeds to 212. In some embodiments, regardless of the determination at304 about whether or not to rediscover additional information or data at304, the method or system for implementing expert assessment of productdefect or upgrade may proceed to 306 in either case.

At 306, the method or system for implementing expert assessment ofproduct defect or upgrade determines whether or not there exists anyconflict in the expert assessment determined at 210 in some embodiments.In some embodiments where the method or the system determines that thereexists at least one conflict, the method or the system may proceed to304 to determine whether or not to rediscover additional information ordata and/or whether or not the additional information or data mayresolve the conflict at 306. In some embodiments where the method orsystem for implementing expert assessment of product defect or upgradedetermines that there exists no conflict in the expert assessment of210, the method or the system proceeds to 212.

At 212, the method or system for implementing expert assessment ofproduct defect or upgrade determines whether the result of the act ofdetermining the expert assessment at 210 is deterministic in someembodiments. In some embodiments where the method or system forimplementing expert assessment of product defect or upgrade finds thatthe determination of the expert assessment is deterministic, the methodor the system may proceed to 236 to determine the confidences of theresult(s) of the determination of the expert assessment. At 214, themethod or system for implementing expert assessment of product defect orupgrade may proceed to further utilize or manipulate the expertassessment.

After the method or system for implementing expert assessment of productdefect or upgrade finishes the process 214, the method or the systemproceeds to 216 to continue with further actions in some embodiments. Insome embodiments, the method or system for implementing expertassessment of product defect or upgrade may also filter the display orreport of the expert assessment at 228 based upon different criteriawhich comprise client's requirements for a report of expert assessmentor any other recipient's requirement for such expert assessment. In someembodiments where the method or system for implementing expertassessment of product defect or upgrade finds that the result of thedetermination of the expert assessment at 210 is non-deterministic, themethod or the system may proceed to 218 to invoke one or more processesor modules. In some embodiments, the method or system for implementingexpert assessment of product defect or upgrade may also proceed to 234for further processing after the method or the system finishes the oneor more processes or modules at 218.

Referring to FIG. 4 which illustrates more details of the method orsystem for implementing expert assessment of product defect or upgrade.At 202, the method or system for implementing expert assessment ofproduct defect or upgrade identifies or receives information or dataregarding a client system on which the product is running in someembodiments. At 402, the method or system for implementing expertassessment of product defect or upgrade further identifies a contextdatabase which comprises context information in some embodiments.

In some embodiments, the context information comprises information abouta component of the client's platform, where the component is not part ofthe product but may be problematic in causing one or more issues ofincompatibility, stability, or performance. In some embodiments, thecontext information comprises information other than the information ordata received or identified at 202. In some embodiments, the contextinformation may be used to assist the analyses at 208, the determinationat 210, the merge decision at 302, the rediscovery decision at 304, orthe conflict decision at 306. For example, the context information maycomprise one or more other processes or modules on the client's platformwhile some of these processes or modules may be known to cause issueswith some aspect of the product. In this case, the method or system forimplementing expert assessment of product defect or upgrade may then usethis context information to aid its processes at various stages.

At 204, the method or system for implementing expert assessment ofproduct defect or upgrade identifies one or more databases, tables,lists, or other data structures (collectively database) for persistingdata in some embodiments. In some embodiments, the method or system forimplementing expert assessment of product defect or upgrade receives oridentifies information or data regarding the fixes or patches forvarious defects on various platform running different operating systemat 308. In some embodiments, the information or data so received oridentified are stored in a database. In some embodiments, the databasecomprises the defect status database as identified at 230. In someembodiments, the method or system for implementing expert assessment ofproduct defect or upgrade identifies a list of defects from a database,a table, a list, or any other data structure at 310. In someembodiments, the method or system for implementing expert assessment ofproduct defect or upgrade identifies or determines the status of fixesor patches form a list, a table, a database, or any other data structureat 312.

At 206, the method or system for implementing expert assessment ofproduct defect or upgrade receives one or more rules regarding theexpert assessment of product defect or upgrade in some embodiments. At208, the method or system for implementing expert assessment of productdefect or upgrade analyzes the information or data identified orreceived at 202 based on the one or more rules in some embodiments. At210, the method or system for implementing expert assessment of productdefect or upgrade performs expert assessment of the product defect orupgrade. In some embodiments where the expert assessment comprises fixesor patches or an upgrade planning or strategy, the method or system forimplementing expert assessment of product defect or upgrade determineswhether or not the one or more fixes/patches are to be merged at 302. Insome embodiments, the method or system for implementing expertassessment of product defect or upgrade may optionally performoptimization on the expert assessment.

For example, the method or system for implementing expert assessment ofproduct defect or upgrade may iteratively determines a relativelyoptimal expert assessment based on information or data such as theinformation or data identified or received at 202, the contextinformation of 402, the result of the pre-processes of 316, therediscovery determination at 304, the conflict determination of 306, orthe deterministic determination of 212. In various embodiments, themethod or system for implementing expert assessment of product defect orupgrade may take into account various criteria or factors such as theclient's goals, requirements, constraints, or conditions in optimizingthe expert assessment in response.

After the method or system for implementing expert assessment of productdefect or upgrade finishes the process or module at 210, the method orthe system may then proceed to 304 to determine whether or not torediscover additional information or data for implementing expertassessment of product defect or upgrade in some embodiments. In someembodiments where the method or system for implementing expertassessment of product defect or upgrade determines that it is necessaryor desirable to rediscover additional information, the method or systemthen receives or identifies such additional information similar to theprocess or module at 224 and loops back to 208 to perform analyses withthe additional information or data based at least on the rules receivedor identified at 206.

In some embodiments where the method or system for implementing expertassessment of product defect or upgrade determines that it is notnecessary or not desirable to rediscover additional information or data,the method or the system proceeds to 212. In some embodiments,regardless of the determination at 304 about whether or not torediscover additional information or data at 304, the method or systemfor implementing expert assessment of product defect or upgrade mayproceed to 306 in either case. At 306, the method or system forimplementing expert assessment of product defect or upgrade determineswhether or not there exists any conflict in the expert assessmentdetermined at 210 in some embodiments. In some embodiments where themethod or the system determines that there exists at least one conflict,the method or the system may proceed to 304 to determine whether or notto rediscover additional information or data and/or whether or not theadditional information or data may resolve the conflict at 306. In someembodiments where the method or system for implementing expertassessment of product defect or upgrade determines that there exists noconflict in the expert assessment of 210, the method or the systemproceeds to 212.

At 212, the method or system for implementing expert assessment ofproduct defect or upgrade determines whether the result of the act ofdetermining the expert assessment at 210 is deterministic in someembodiments. In some embodiments where the method or system forimplementing expert assessment of product defect or upgrade finds thatthe determination of the expert assessment is deterministic, the methodor the system may proceed to 236 to determine the confidences of theresult(s) of the determination of the expert assessment.

At 214, the method or system for implementing expert assessment ofproduct defect or upgrade may proceed to further utilize or manipulatethe expert assessment. After the method or system for implementingexpert assessment of product defect or upgrade finishes the process 214,the method or the system proceeds to 216 to continue with furtheractions in some embodiments. In some embodiments, the method or systemfor implementing expert assessment of product defect or upgrade may alsofilter the display or report of the expert assessment at 228 based upondifferent criteria which comprise client's requirements for a report ofexpert assessment or any other recipient's requirement for such expertassessment. In some embodiments where the method or system forimplementing expert assessment of product defect or upgrade finds thatthe result of the determination of the expert assessment at 210 isnon-deterministic, the method or the system may proceed to 218 to invokeone or more processes or modules. In some embodiments, the method orsystem for implementing expert assessment of product defect or upgrademay also proceed to 234 for further processing after the method or thesystem finishes the one or more processes or modules at 218.

Referring to FIG. 5 which illustrates more details of the preprocessingmodule of the system or the preprocessing process of the method forimplementing expert assessment of product defect or upgrade. It shall benoted that at least some of these processes of the method and at leastsome of the modules of the system need not be performed in the order inwhich they are described below. At 502, the method or system forimplementing expert assessment of product defect or upgrade receives oridentifies a list of fixes or patches in some embodiments.

At 503, the method or system for implementing expert assessment ofproduct defect or upgrade determines or identifies a list of defects insome embodiments. At 506, the method or system for implementing expertassessment of product defect or upgrade determines or identifies a listof versions of the products, or operating systems in some embodiments.In some embodiments, the list of versions comprises one or more targetversions of the products or the operating systems. In some embodiments,the list of versions comprises one or more current versions of theproducts or the operating systems.

At 508, the method or system for implementing expert assessment ofproduct defect or upgrade determines or identifies a list of platformsin some embodiments. In some embodiments, the list of defects, the listof versions, or the list of platforms is persisted in the database thatis dynamically maintained. At 510, the method or system for implementingexpert assessment of product defect or upgrade determines or identifieswhether a defect from the list of defects is fixed.

At 512, the method or system for implementing expert assessment ofproduct defect or upgrade determines the status of fixes or patches forthe defect in some embodiments. In some embodiments, the status of fixesof patches for the defect comprises an indication that the defect hasalready been fixed in the target version that the client desires. Insome embodiments, the status of fixes of patches for the defectcomprises an indication that one or more fixes or patches are currentlyavailable for the defect, 514. In some embodiments, the status of fixesof patches for the defect comprises an indication that the defect hasnot been fixed so no fix or patch is currently available, but a fix or apatch will be available at some future date, 516.

In some embodiments, this may indicate that a fix or a patch for thedefect is currently being worked on, 518. In some embodiments, thestatus of fixes of patches for the defect comprises an indication thatthe defect has not been fixed, and there is no currently plan to releasea fix or a patch for the defect, 520. In some embodiments, the status offixes of patches for the defect comprises an indication that the methodor the system cannot deterministically determine whether a fix or apatch is available for the defect or whether the reported defect is infact a defect, 522. In some embodiments, the status of fixes of patchesfor the defect comprises an indication that the defect ceases toconstitute a defect, and there is no need for a fix or a patch for thedefect, 524.

Referring to FIG. 6 which illustrates more details of the furtherprocessing module of the system or the further processing process of themethod for implementing expert assessment of defect fixes upgrade. Insome embodiments, the method or system for implementing expertassessment of product defect or upgrade may rediscover or re-gather thesubject matter expert knowledge or any other additional information ordata for the subject matter of interest at 602. In some embodiments, themethod or system for implementing expert assessment of product defect orupgrade may perform statistical analyses or analyses of historical datawhile taking the current expert assessment into consideration at 604.

In some embodiments, the method or system for implementing expertassessment of product defect or upgrade may choose to supplement orexpand the one or more databases at 608. In some embodiments, the one ormore databases are used for processing or facilitating the intelligencebehavior of the method or the system or for inferencing. In someembodiments, the one or more databases are used by the method or thesystem for mimicking human expert reasoning or inferencing. In someembodiments, the one or more databases are used for analyses ofinformation of the client's platform based on the one or more rulespreviously identified or received while taking the non-deterministicdetermination of the expert assessment.

In some embodiments, the method or system for implementing expertassessment of product defect or upgrade may further supplement knowledgedeclarations while taking the current expert assessment intoconsideration at 606. In some embodiments, the method or system forimplementing expert assessment of product defect or upgrade maysupplement the rule base or the knowledge base based at least in partupon the current expert assessment and/or the non-deterministicdetermination of the expert assessment. In some embodiments, the methodor system for implementing expert assessment of product defect orupgrade may determine whether or not the current expert assessmentrenders any rules admissible or derivable. In some embodiments, anadmissible rule is one whose conclusion holds whenever the premiseshold. In some embodiments, a derivable rule is one whose conclusion maybe derived from its premises using one or more other rules. It may beseen that all such derivable rules are admissible. In some embodiments,the method or system for implementing expert assessment of productdefect or upgrade determines whether or not the current expertassessment renders any rules inadmissible.

At 616, the method or system for implementing expert assessment ofproduct defect or upgrade determines whether or not to codify or makechanges due to a non-deterministic result in the determination of expertassessment in some embodiments. In some embodiments, the method orsystem for implementing expert assessment of product defect or upgradedetermines whether to codify or make changes to the analysis engine, ifemployed by the method or the system. In some embodiments, the method orsystem for implementing expert assessment of product defect or upgradedetermines whether or not to codify or make changes to a problem solvingengine, process, or module, if employed by the method or the system. Insome embodiments, the method or system for implementing expertassessment of product defect or upgrade determines whether to codify ormake changes to an inference engine, if employed by the method or thesystem.

In some embodiments, the method or system for implementing expertassessment of product defect or upgrade determines whether or not tocodify or make changes to the decision logic, if employed by the methodor the system. In some embodiments, the method or system forimplementing expert assessment of product defect or upgrade performsmathematical, statistical, historical, or empirical analyses of theinformation regarding the defects based upon the non-deterministicdetermination of the expert assessment at 614. In some embodiments, themethod or system for implementing expert assessment of product defect orupgrade uses the analyses at 614 to improve the accuracy of the resultsof determining the expert assessment. In some embodiments, the method orsystem for implementing expert assessment of product defect or upgradeuses artificial intelligence process(es) or module(s) such as a learningprocess or a learning module to determine whether the accuracy of thedetermination of the expert assessment may be improved or to improvesuch accuracy at 612. In some embodiments, the method or system forimplementing expert assessment of product defect or upgrade invokes thedecision logic to determine whether the accuracy of the determination ofthe expert assessment may be improved or to improve such accuracy at618.

Referring to FIG. 7 which illustrates the information or data which maybe utilized as an input for the method or system for implementing expertassessment of product defect or upgrade. In some embodiments, theinformation or data may comprise information or data of the inventory ofthe client's platform, 702. In some embodiments, the information or datamay comprise information or data of the inventory of the client'splatform, 702. In some embodiments, the inventory comprises one or morecurrent versions of the client's platform(s), 704. In some embodiments,the inventory comprises one or more current versions of the client'splatform(s) or product(s), 704. In some embodiments, the inventorycomprises one or more current versions of the operating system(s) ofclient's platform(s), 706.

In some embodiments, the inventory comprises the inventory of fixes orpatches which have been applied to the product(s) on the client'splatform(s), 708. In some embodiments, the inventory comprises contextinformation of the client's platform(s), operating system(s), orproduct(s), 710. In some embodiments, the information or data comprisethe target information, 712. In some embodiments, the target informationcomprises one or more target versions of the client's platform(s) orproduct(s) that the client desires to acquire, 714. In some embodiments,the target information comprises one or more target versions of theoperating system(s) for the client's platform(s) which the clientdesires to acquire, 716. In some embodiments, the target informationcomprises context information of the target operating system(s), thetarget platform(s), or the target product(s) which the client desires toacquire, 718.

Some embodiments use software products in the above description merelyfor illustration and ease of explanation purposes only and do not intendto limit the scope of various embodiments. Some embodiments also usefixes or patches as the expert assessment to defects for illustrationand ease of explanation purposes only and do not intend to limit thescope of various embodiments. One of ordinary skills in the art willclearly understand that various methods, processes, systems, or machinesdisclosed herein may equally well apply to other types of products andother types of expert assessment.

System Architecture Overview

FIG. 8 illustrates a block diagram of an illustrative computing system1400 suitable for implementing an embodiment of the present invention.Computer system 1400 includes a bus 1406 or other communicationmechanism for communicating information, which interconnects subsystemsand devices, such as processor 1407, system memory 1408 (e.g., RAM),static storage device 1409 (e.g., ROM), disk drive 1410 (e.g., magneticor optical), communication interface 1414 (e.g., modem or Ethernetcard), display 1411 (e.g., CRT or LCD), input device 1412 (e.g.,keyboard), and cursor control (not shown).

According to one embodiment of the invention, computer system 1400performs specific operations by processor 1407 executing one or moresequences of one or more instructions contained in system memory 1408.Such instructions may be read into system memory 1408 from anothercomputer readable/usable medium, such as static storage device 1409 ordisk drive 1410. In alternative embodiments, hard-wired circuitry may beused in place of or in combination with software instructions toimplement the invention. Thus, embodiments of the invention are notlimited to any specific combination of hardware circuitry and/orsoftware. In one embodiment, the term “logic” shall mean any combinationof software or hardware that is used to implement all or part of theinvention.

The term “computer readable medium” or “computer usable medium” as usedherein refers to any medium that participates in providing instructionsto processor 1407 for execution. Such a medium may take many forms,including but not limited to, non-volatile media, and volatile mediamedia. Non-volatile media includes, for example, optical or magneticdisks, such as disk drive 1410. Volatile media includes dynamic memory,such as system memory 1408.

Common forms of computer readable media includes, for example, floppydisk, flexible disk, hard disk, magnetic tape, any other magneticmedium, CD-ROM, any other optical medium, punch cards, paper tape, anyother physical medium with patterns of holes, RAM, PROM, EPROM,FLASH-EPROM, any other memory chip or cartridge, or any other mediumfrom which a computer can read.

In an embodiment of the invention, execution of the sequences ofinstructions to practice the invention is performed by a single computersystem 1400. According to other embodiments of the invention, two ormore computer systems 1400 coupled by communication link 1415 (e.g.,LAN, PTSN, or wireless network) may perform the sequence of instructionsrequired to practice the invention in coordination with one another.

Computer system 1400 may transmit and receive messages, data, andinstructions, including program, i.e., application code, throughcommunication link 1415 and communication interface 1414. Receivedprogram code may be executed by processor 1407 as it is received, and/orstored in disk drive 1410, or other non-volatile storage for laterexecution. Computer system 1400 may also interact with a database system1432 via a data interface 1433 where the computer system 1400 may storeand retrieve information or data of the electronic design into and fromthe database system.

In the foregoing specification, the invention has been described withreference to specific embodiments thereof. It will, however, be evidentthat various modifications and changes may be made thereto withoutdeparting from the broader spirit and scope of the invention. Forexample, the above-described process flows are described with referenceto a particular ordering of process actions. However, the ordering ofmany of the described process actions may be changed without affectingthe scope or operation of the invention. The specification and drawingsare, accordingly, to be regarded in an illustrative rather thanrestrictive sense. Moreover, unless otherwise explicitly stated, variousprocesses need not be performed in order to achieve the intendedpurpose(s) in the order as they are described in the foregoingspecification. Similarly, unless otherwise explicitly stated, variousmodules or parts of the system need not be invoked in the order they aredescribed in the foregoing specification in order to achieve theintended purpose(s).

We claim:
 1. A machine-implemented method for implementing expertassessment of an update to fix problems for a product, the methodcomprising: identifying or receiving information regarding one or moretarget versions of a product in a client system; identifying orreceiving a list of defects from a database; analyzing, using acomputer, the information regarding the client system based at least inpart upon one or more reasoning rules to determine whether theinformation results in deterministic or non-deterministic expertassessment; when the expert assessment is determined to bedeterministic, outputting the expert assessment for the update to fixproblems with the product based at least in part upon a result of theact of analyzing the information regarding the client system; when theexpert assessment is determined to be non-deterministic due to at leasta conflict in the information, generating the expert assessment based atleast in part upon results of performing iterative analyses on theinformation with one or more additional inputs for the iterativeanalyses; and storing the expert assessment in a non-transitory computerreadable medium.
 2. The machine-implemented method of claim 1, whereinthe expert assessment is related to a defect of the product.
 3. Themachine-implemented method of claim 1, further comprising: optimizingthe expert assessment.
 4. The machine-implemented method of claim 3,wherein the act of optimizing the expert assessment is based at least inpart upon an additional information.
 5. The machine-implemented methodof claim 4, wherein the addition information comprises an upgradeplanning, an update strategy, a specific instruction by a client, or agoal of the client.
 6. The machine-implemented method of claim 1,wherein the expert assessment is based on incomplete reasoning or notfully determined reasoning.
 7. The machine-implemented method of claim1, further comprising: determining whether a result of the act ofdetermining the expert assessment is deterministic.
 8. Themachine-implemented method of claim 7, further comprising: determining aconfidence of a result of the act of determining the expert assessment.9. The machine-implemented method of claim 7, further comprising one ormore of: reporting an exception; identifying a problematic input whichcontributes to a non-deterministic result of the act of determining theexpert assessment; requesting an action to improve the non-deterministicresult of the act of determining the expert assessment; and identifyingor receiving additional information for the act of analyzing theinformation regarding the client system, wherein the result of the actof determining the expert assessment is non-deterministic.
 10. Themachine-implemented method of claim 7, wherein the result of the act ofdetermining the expert assessment is non-deterministic, themachine-implemented method further comprises: performing a statisticalor a historical analysis while taking the expert assessment intoconsideration.
 11. The machine-implemented method of claim 10, furthercomprising: supplementing a knowledge declaration, a rule base, or oneor more databases comprising the information regarding the client systemor other information used for the act of analyzing the informationregarding the client system or for the act of determining the expertassessment.
 12. The machine-implemented method of claim 11, wherein theact of supplementing the knowledge declaration, the rule base, or one ormore databases is performed without modifying one or more executableprograms of the product.
 13. The machine-implemented method of claim 10,further comprising: modifying at least one executable program based atleast upon a result of the act of determining whether the result of theact of determining the expert assessment is deterministic.
 14. Themachine-implemented method of claim 10, further comprising:re-performing the act of analyzing the information while taking theexpert assessment into consideration; or invoking one or more artificialintelligence processes to improve the result of the act of determiningthe expert assessment.
 15. The machine-implemented method of claim 1,further comprising: pre-processing the information regarding the clientsystem or a second information.
 16. The machine-implemented method ofclaim 15, wherein the act of pre-processing comprises one or more of thefollowing acts: receiving or identifying the information or the secondinformation that is related to one or more fixes or patches; identifyinga list of defects; and determining a status of the one or more fixes orpatches.
 17. The machine-implemented method of claim 1, wherein the actof determining the expert assessment comprises: determining whether ornot a plurality of fixes may be merged.
 18. The machine-implementedmethod of claim 1, further comprising: determining whether or not thereexists a conflict in the expert assessment.
 19. The machine-implementedmethod of claim 1, further comprising: rediscovering more informationfor the act of analyzing the information regarding the client system orfor the act of determining the expert assessment.
 20. Themachine-implemented method of claim 1, further comprising: receiving oridentifying a context information which comprises information aboutanother component which is not part of the product.
 21. Themachine-implemented method of claim 1, in which the informationregarding the client system comprises a client inventory or a targetinformation.
 22. The machine-implemented method of claim 21, in whichthe client inventory comprises: a current version of a client platform;a current version of an operating system together with which the productruns; or an inventory of fixes applied.
 23. The machine-implementedmethod of claim 21, in which the target information comprises: a targetversion of a target platform on which the product runs; a target versionof the target platform together with which the product runs; or a targetcontext information.
 24. A system for implementing expert assessment ofan update to fix problems for a product, the method comprising: aprocessor; a memory for holding programmable code that includesinstructions which, when executed by the processor, cause the processorto: identify or receive information regarding one or more targetversions of a product in a client system, identify or receive a list ofdefects from a database, analyze, using a computer, the informationregarding the client system based at least in part upon one or morereasoning rules to determine whether the information results indeterministic or non-deterministic expert assessment, when the expertassessment is determined to be deterministic, output the expertassessment for the update to fix problems with the product based atleast in part upon a result of the act of analyzing the informationregarding the client system using the at least one or more reasoningrules, and when the expert assessment is determined to benon-deterministic due to at least a conflict in the information,generating the expert assessment based at least in part upon results ofperforming iterative analyses on the information with one or moreadditional inputs for the iterative analyses.
 25. The system of claim24, wherein the expert assessment is based on incomplete reasoning ornot fully determined reasoning.
 26. The system of claim 24, wherein theprogrammable code further includes instructions which, when executed bythe processor, further cause the processor to determine a confidence ofa result of the act of determining the expert assessment.
 27. The systemof claim 24, wherein the programmable code further includes instructionswhich, when executed by the processor, further cause the processor toreport an exception, identify a problematic input which contributes to anon-deterministic result of the act of determining the expertassessment, request an action to improve the non-deterministic result ofthe act of determining the expert assessment, and identify or receiveadditional information for the act of analyzing the informationregarding the client system, wherein the result of the act ofdetermining the expert assessment is non-deterministic.
 28. The systemof claim 24, wherein the programmable code further includes instructionswhich, when executed by the processor, further cause the processor todetermine whether or not there exists a conflict in the expertassessment.
 29. The system of claim 24, wherein the result of the act ofdetermining the expert assessment is non-deterministic, and wherein theprogrammable code further includes instructions which, when executed bythe processor, further cause the processor to perform a statistical or ahistorical analysis while taking the expert assessment intoconsideration.
 30. The system of claim 29, wherein the programmable codefurther includes instructions which, when executed by the processor,further cause the processor to supplement a knowledge declaration, arule base, or one or more databases comprising the information regardingthe client system or other information used for the act of analyzing theinformation regarding the client system or for the act of determiningthe expert assessment.
 31. The system of claim 29, wherein theprogrammable code further includes instructions which, when executed bythe processor, further cause the processor to modify at least oneexecutable program based at least upon a result of the act ofdetermining whether the result of the act of determining the expertassessment is deterministic.
 32. The system of claim 29, wherein theprogrammable code further includes instructions which, when executed bythe processor, further cause the processor to re-perform the act ofanalyzing the information while taking the expert assessment intoconsideration or invoking one or more artificial intelligence processesto improve the result of the act of determining the expert assessment.33. A computer program product embodied on a non-transitory computerusable storage medium, the non-transitory computer readable storagemedium having stored thereon a sequence of instructions which, whenexecuted by a processor causes the processor to execute a set of actsfor implementing expert assessment of an update to fix problems for aproduct, the set of acts comprising: identifying or receivinginformation regarding one or more target versions of a product in aclient system; identifying or receiving a list of defects from adatabase; analyzing, using a computer, the information regarding theclient system based at least in part upon one or more reasoning rules todetermine whether the information results in deterministic ornon-deterministic expert assessment; when the expert assessment isdetermined to be deterministic, outputting the expert assessment for theupdate to fix problems with the product based at least in part upon aresult of the act of analyzing the information regarding the clientsystem; when the expert assessment is determined to be non-deterministicdue to at least a conflict in the information, generating the expertassessment based at least in part upon results of performing iterativeanalyses on the information with one or more additional inputs for theiterative analyses; and storing the expert assessment in anon-transitory computer readable medium.
 34. The computer programproduct of claim 33, wherein the expert assessment is based onincomplete reasoning or not fully determined reasoning.
 35. The computerprogram product of claim 33, the set of acts further comprising:determining a confidence of a result of the act of determining theexpert assessment.
 36. The computer program product of claim 33, the setof acts further comprising one or more of: reporting an exception;identifying a problematic input which contributes to a non-deterministicresult of the act of determining the expert assessment; requesting anaction to improve the non-deterministic result of the act of determiningthe expert assessment; and identifying or receiving additionalinformation for the act of analyzing the information regarding theclient system, wherein the result of the act of determining the expertassessment is non-deterministic.
 37. The computer program product ofclaim 33, the set of acts further comprising: determining whether or notthere exists a conflict in the expert assessment.
 38. The computerprogram product of claim 33, wherein the result of the act ofdetermining the expert assessment is non-deterministic, and the set ofacts further comprises: performing a statistical or a historicalanalysis while taking the expert assessment into consideration.
 39. Thecomputer program product of claim 38, the set of acts furthercomprising: supplementing a knowledge declaration, a rule base, or oneor more databases comprising the information regarding the client systemor other information used for the act of analyzing the informationregarding the client system or for the act of determining the expertassessment.
 40. The computer program product of claim 38, the set ofacts further comprising: modifying at least one executable program basedat least upon a result of the act of determining whether the result ofthe act of determining the expert assessment is deterministic.
 41. Thecomputer program product of claim 38, the set of acts furthercomprising: re-performing the act of analyzing the information whiletaking the expert assessment into consideration; or invoking one or moreartificial intelligence processes to improve the result of the act ofdetermining the expert assessment.